1. Technical Field
The present application relates generally to an improved data processing system and method. More specifically, the present application is directed to an apparatus and method for partitioning programs between a general purpose core and one or more accelerators.
2. Description of Related Art
Recently, International Business Machines, Inc. has announced the architecture for the next generation computing platform referred to as the Cell Broadband Engine Architecture (CBEA). The CBEA is comprised of a general purpose processor, or main core, that is augmented with one or more special purpose processors that may or may not have the same instruction set architecture as the main core or each other. In such a data processing environment, it is necessary to partition application programs into sub-programs that may be executed on the main core and sub-programs that may be executed on the various special purpose processors.
Typically, in order to partition a program into sub-programs, a programmer must manually partition the program. This requires a knowledge on the part of the programmer both of the program that is being partitioned as well as a knowledge of the specific main core and special purpose processors on which the partitions of the program are to be run. In addition, such partitioning may be an arduous task requiring much effort and time on the part of the programmer. Furthermore, since such partitioning relies completely on the human programmer, such partitioning is subject to human error. Moreover, if there is a change in the system architecture on which the program is to be run, the programmer may have to re-partition the program for the new architecture.